package matchs

import (
	"github.com/flipped-aurora/gin-vue-admin/server/global"
)

// MatchSearchRecommend 找人候选推荐表模型（关联MatchSearchTask）
type MatchSearchRecommend struct {
	global.GVA_MODEL
	TaskID       uint64 `gorm:"column:task_id;type:bigint unsigned;not null;comment:'关联MatchSearchTask任务ID'" json:"taskId"` // 关联model/matchs.MatchSearchTask
	TargetUserID uint64 `gorm:"column:target_user_id;type:bigint unsigned;not null;comment:'候选用户ID（关联system.SysUser）'" json:"targetUserId"`
	Rank         int    `gorm:"column:rank;type:int;not null;default:0;comment:'排序权重（值越小优先级越高）'" json:"rank"`
	Status       int8   `gorm:"column:status;type:tinyint;not null;default:0;comment:'候选交互状态：0-待展示 1-已跳过 2-发起沟通 3-沟通完成 4-沟通被拒'" json:"status"`
	ChatID       string `gorm:"column:chat_id;type:varchar(64);default:'';comment:'关联OpenIM会话ID'" json:"chatId"`
}

// TableName 自定义表名（适配gin-vue-admin蛇形命名规范）
func (m *MatchSearchRecommend) TableName() string {
	return "match_search_recommend"
}

// 可选：定义状态枚举常量（便于业务代码中引用，避免硬编码）
const (
	MatchRecommendStatusPending   = 0 // 待展示
	MatchRecommendStatusSkipped   = 1 // 已跳过
	MatchRecommendStatusInitiated = 2 // 发起沟通
	MatchRecommendStatusCompleted = 3 // 沟通完成
	MatchRecommendStatusRejected  = 4 // 沟通被拒
)
